home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1996 April / Macworld (1996-04).dmg / Shareware World / Entertainment / Arcade / CheeseToast / Source / UtilFuncs.c < prev    next >
Text File  |  1993-06-03  |  2KB  |  115 lines

  1. // Utilfuncs.c
  2. #include <stdarg.h>
  3. #include <string.h>
  4.  
  5. short MyRandom(short limit)
  6. {
  7.     unsigned long r;
  8.     r = (unsigned) Random();
  9.     r = (r*(long)limit)/65536L;
  10.     return (short) r;
  11. }
  12.  
  13. void GetInputFileSpec(SFReply *theReply,StringPtr prompt,long type)
  14. {
  15.     Point    sfLoc;
  16.     short    nbrTypes;
  17.     SFTypeList    theList;
  18.  
  19.     if (type) {
  20.         nbrTypes = 1;
  21.         theList[0] = type;
  22.     }
  23.     else {
  24.         nbrTypes = -1;
  25.     }
  26.  
  27.     sfLoc.h = -1;
  28.     sfLoc.v = -1;
  29.     SFGetFile(sfLoc, prompt, NULL, nbrTypes, theList,
  30.                 NULL, theReply);
  31. }
  32.  
  33. void GetOutputFileSpec(SFReply *theReply,StringPtr prompt,StringPtr defName)
  34. {
  35.     Point    sfLoc;
  36.  
  37.  
  38.     sfLoc.h = -1;
  39.     sfLoc.v = -1;
  40.  
  41.     SFPutFile(sfLoc, prompt, defName, NULL, theReply);
  42.  
  43. }
  44.  
  45.  
  46. int MyFGets(short refNum, char *buf)
  47. {
  48.  
  49. #define EOL            13
  50. #define MaxBufSize    256
  51.  
  52.     IOParam    pb;
  53.     OSErr    oe;
  54.  
  55.     pb.ioCompletion = NULL;
  56.     pb.ioRefNum = refNum;
  57.     pb.ioBuffer = (Ptr) buf;
  58.     pb.ioReqCount = MaxBufSize;
  59.     pb.ioPosMode = fsAtMark | 0x80 | ('\r' << 8);
  60.     pb.ioPosOffset = 0;
  61.  
  62.     oe = PBRead((ParmBlkPtr) &pb, false);
  63.     if (oe == noErr || oe == eofErr && pb.ioActCount > 0) {
  64.         buf[pb.ioActCount] = 0;    // Add a nul to the end
  65.         return 1;
  66.     }
  67.     else
  68.         return 0;
  69. }
  70.  
  71. void ErrorExit(char *str,...)
  72. {
  73.     char tbuf[128];
  74.     va_list args;
  75.     va_start(args,str);
  76.     vsprintf(tbuf,str,args);
  77.     va_end(args);
  78.  
  79.     CtoPstr(tbuf);
  80.     ParamText((StringPtr) tbuf,"\p","\p","\p");
  81.     Alert(128,NULL);
  82.     exit(1);
  83. }
  84.  
  85. // Assume there is enough space in string to change it
  86. void ChangeFileExtension(StringPtr fName, StringPtr ext)
  87. {
  88.     char     *p,*fp;
  89.     PtoCstr(fName);
  90.     PtoCstr(ext);
  91.     fp = (char *) fName;
  92.     if ((p = strchr(fp,'.')) == NULL)
  93.         p = fp + strlen(fp);
  94.     strcpy(p,(char *) ext);
  95.     CtoPstr((char *) fName);
  96.     CtoPstr((char *) ext);
  97. }
  98.  
  99. short min(register short x, register short y)
  100. {
  101.     if (x < y)
  102.         return x;
  103.     else
  104.         return y;
  105. }
  106.  
  107. short max(register short x, register short y)
  108. {
  109.     if (x > y)
  110.         return x;
  111.     else
  112.         return y;
  113. }
  114.  
  115.